package org.example.DesignPatterns.Interpreter;

import java.util.Arrays;

/**
 * @description:
 * @author: farprt
 * @create: 2022-09-25 13:56
 **/
public class Client {

    public static void main(String[] args) {
//        1.  BEGIN                 // 脚本开始
//        2.  MOVE 500,600;         // 鼠标指针移动到坐标(500, 600)
//        3.      BEGIN LOOP 5      // 开始循环5次
//        4.          LEFT_CLICK;   // 循环体内单击左键
//        5.          DELAY 1;      // 每次延迟1秒
//        6.      END;              // 循环体结束
//        7.  RIGHT_DOWN;           // 按下右键
//        8.  DELAY 7200;           // 延迟2小时
//        9.  END;                  // 脚本结束
        //构造指令集语义树，实际情况会交给语法分析器
        Expression sequence=new Sequence(Arrays.asList(
                new Move(500,600),
                new Repetition(
                        new Sequence(
                                Arrays.asList(new LeftKeyClick(),new Delay(1))
                        ),5//循环5次
                ),
                new RightKeyDown(),
                new Delay(7200)
        ));

        sequence.interpret();

    }
}